package org.jgs1904.oopbase.test.scope;

import org.jgs1904.oopbase.test.scope.father.Father;
import org.jgs1904.oopbase.test.scope.father.Son1;

/**
 * @author: 默苍璃
 * @date: 2022-09-14 15:02
 * <p>
 * 作用域测试
 */
public class Main {
    public static void main(String[] args) {

        Father father = new Father();
        Son son = new Son();
        Son1 son1 = new Son1();

        //public 同包
        System.out.println(son.s1);
        //public 不同包
        System.out.println(son1.f1);

        //private 同包  (无法访问)
        //System.out.println(son.f2);
        //private 不同包  (无法访问)
        //System.out.println(son1.f2);

        //protected 同包
        System.out.println(son.f3);
        //protected 不同包 (无法访问)
        //System.out.println(son1.f3);
        //protected 同包子类
        son1.s3();
        //protected 不同包子类
        son.s3();
        //protected 不同包父类 (无法访问)
        //某类的protected 方法和属性在 包外 是不能通过该类对象进行访问的(该对象,并非子类)
        //System.out.println(father.f3);

        //package 同包
        System.out.println(son.f4);
        //package 不同包  (无法访问)
        //System.out.println(son1.f4);
        //package 同包子类
        son1.s4();
        //package 不同包子类 (无法访问)
        //son.s4();

    }


}
